Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

214
Views
La propiedad "en" no existe en Array

Según MDN Web Docs Array.prototype#at , es un método válido. Pero por alguna razón, TypeScript se niega a compilar, afirmando que no existe.

 public at(index: number): V { index = Math.floor(index); const arr = [...this.values()]; return arr.at(index); }

Salida de consola de tsc: Mecanografiado Se queja más

No puedo usar la notación de corchetes, ya que el método está diseñado para poder manejar números negativos. Probé muchas cosas, incluida la configuración del target en el archivo tsconfig.json en ESNext, ES2021 y ES6, pero fue en vano. La opción lib tampoco ayuda.

json

 // tsconfig.json { "compilerOptions": { "target": "ES2021", "outDir": "./dist", "declaration": true, "declarationDir": "./typings", "lib": ["ES2021", "ESNext"] } }

¿Que puedo hacer? ¿Estoy haciendo algo mal?

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Según MDN Web Docs Array.prototype#at , es un método válido.

MDN no puede decidir qué es parte de TypeScript y qué no. Los desarrolladores de TypeScript hacen eso.

Si MDN dice o no que algo es un "método válido" es relevante para Mozilla, y solo para Mozilla, pero no tiene relación con TypeScript.

Pero por alguna razón, TypeScript se niega a compilar, afirmando que no existe.

Esto se debe a que el método no existe en ninguna versión de ECMAScript compatible con TypeScript.

Probé muchas cosas, incluida la configuración del target en el archivo tsconfig.json en ESNext, ES2021 y ES6, pero fue en vano.

Esto se debe a que el método no existe ni en ECMAScript 6 ni en ECMAScript 2021 . Existe en ES2022 ( que es lo que es ESNext en este momento), pero solo se agregó hace ocho semanas y, por lo tanto, después de que se finalizó TypeScript 4.4 (y posiblemente también demasiado tarde para TypeScript 4.5).

La opción lib tampoco ayuda.

Nuevamente, eso se debe a que el método no existe en ninguna versión de biblioteca compatible con TypeScript en este momento.

Incluso en la rama principal actual, que se convertirá en TypeScript 4.6, lib/lib.esnext.d.ts solo corresponde a ECMAScript 2021 + las últimas extensiones de internacionalización .

¿Que puedo hacer? ¿Estoy haciendo algo mal?

Puede esperar hasta que el método realmente se convierta en parte de una versión lanzada de ECMAScript y/o TypeScript.

about 4 years ago · Juan Pablo Isaza Report

0

Array#at es de hecho un nuevo método disponible solo en ESNext o usando un polyfill. Si está utilizando este último, puede aumentar la interfaz de matriz global de esta manera:

 declare global { interface Array<T> { at(index: number): T; } }
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!